還記得前5天,我們將無人辦公室的點狀功能設計出來,
這時候,有學員就開始想破我的梗了,
「接下來,還不就只能把它們串起來。。。把後面5天耗盡」
不~~~,你們把我想簡單了,
我豈是讓你們這麼好猜的人物,
短短30天,要道出Python的神功密技絕對不夠,
當然,我可以繼續把前面五個步驟給串起來說,
但,若以此方向的腳本來看,總覺得看不出Python還能有多神?
因此,我打算把相對簡單串起來的部分找機會再跟大家演示,
我們繼續來看看Python到底能有多神?
很多學生說系統設計要快就要多Reuse,
很多老闆說系統架設要快就要一次到位因應商業變化再來客製化,
依照不同的角色,說得都對!
前面幾天我們的設計就符合學生可以Reuse的需求,
今天我們就來從老闆的角度談談一次到位的Python大神級開源應用。
首先登場的是「工作流程管理系統」,
當論及開源的Python在「工作流程管理系統」方面,就非Apache Airflow莫屬不可啦!
Airflow 原先由 Airbnb 開發,現為Apache頂級專案,系統主要的程式語言是 python,具有很棒的GUI,遵循著”configuration as code”原則,就連workflow及task都是用python撰寫的。
而後開源出來的工作流程管理系統(Workflow Management System),提供了多樣的 operator 可以使用,例如 Bash Operator、Python Operator,甚至可以直接對 GCP、S3、Slack 等等進行操作,減少了自己刻輪子的麻煩。漸漸地成為資料科學家、資料工程師以及數據軟體工程師,用來建構可靠的 ETL 以及定期處理批量資料的首選。
一般而言,我們會將相關的工作設計為一個「有向無循環圖」 DAG(Directed Acyclic Graph),顧名思義就是有方向性且無回向造成循環的結構,而且整個 DAG 就是一個 Python 程式,達到大家所追求的 Infrastructure as code,減少維運上的複雜度。
Apache Airflow引以自豪人性化的GUI設計,
流程以拖拉設定的方式設計,
其包含的主要元素如下:
小小充電站:
什麼是DAG(Directed Acyclic Graph)?
DAG是「有向無循環圖」的縮寫。依照連接任務的箭頭產生順序與方向,且不能循環。DAG中的每個節點都對應著一個任務,而任務為資料處理的方式。是Apache中Airflow工具的核心。
(一) Airflow在行業中的應用: -
有用過Linux的人都知道,若要排程作業就必須使用crontab 來管理,
但是crontab常常散置各處,
且相關的順序又很難一眼看出,
出現錯誤時常常後面的作業在前一個作業失敗後繼續執行的窘境,
若在維運階段可是會影響公司的商機。
聽了今天的Python開源方案「Apache Airflow工作流程管理系統」,
是不是被他的人性化流程介面給深深吸引了呢?
明天我們再來介紹另外由Python操刀的開源系統,明天見。